package co.edu.usbcali.pqr.modelo.control;

import java.util.Date;
import java.util.List;

import co.edu.usbcali.pqr.modelo.InfoSolicitante;
import co.edu.usbcali.pqr.modelo.SolicitudPqr;
import co.edu.usbcali.pqr.modelo.dto.AnexosSolicitanteDTO;
import co.edu.usbcali.pqr.modelo.dto.ConsultaSolicitudDTO;
import co.edu.usbcali.pqr.modelo.dto.SolicitudPqrDTO;


/**
* @author Zathura Code Generator http://code.google.com/p/zathura
*
*/
public interface ISolicitudPqrLogic {
    public List<SolicitudPqr> getSolicitudPqr() throws Exception;

    /**
         * Save an new SolicitudPqr entity
         */
    public void saveSolicitudPqr(SolicitudPqr entity) throws Exception;

    /**
         * Delete an existing SolicitudPqr entity
         *
         */
    public void deleteSolicitudPqr(SolicitudPqr entity)
        throws Exception;

    /**
        * Update an existing SolicitudPqr entity
        *
        */
    public void updateSolicitudPqr(SolicitudPqr entity)
        throws Exception;

    /**
         * Load an existing SolicitudPqr entity
         *
         */
    public SolicitudPqr getSolicitudPqr(Long idSolPqr)
        throws Exception;

    public List<SolicitudPqr> findByCriteria(Object[] variables,
        Object[] variablesBetween, Object[] variablesBetweenDates)
        throws Exception;

    public List<SolicitudPqr> findPageSolicitudPqr(String sortColumnName,
        boolean sortAscending, int startRow, int maxResults)
        throws Exception;

    public Long findTotalNumberSolicitudPqr() throws Exception;

    public List<SolicitudPqrDTO> getDataSolicitudPqr()
        throws Exception;

	public void guardarSolicitudCompleta(InfoSolicitante solicitante,
			SolicitudPqr solicitud, String[] selectedReclamos,
			String[] selectedSolicitud,
			List<AnexosSolicitanteDTO> listaAnexosDTO) throws Exception;
	
	public List<ConsultaSolicitudDTO> consultaSolicitud(Long numeroRadicacion,
			Long idEstado, Long idTipoSol, Long idMotSol, Long idMotRecl, Date fechaInicio, Date fechaFin) throws Exception;
	
	public List<ConsultaSolicitudDTO> consultaSolicitudxArea(Long idArea) throws Exception;
}
